﻿using System.Collections.Generic;
using System.Drawing;
using System.Xml.Linq;
using Letspirate.Common;
using Letspirate.Common.Infrastructure;

namespace Letspirate.MapEngine.Tests.Unit.Stubs
{
    internal class MapStub : Map
    {
        public MapStub() : base(new StreamController())
        { }

        public MapStub(IStreamController streamController) : base(streamController)
        { }

        public new Dictionary<Color, int> LoadColorIdMappings(string path)
        {
            return base.LoadColorIdMappings(path);
        }

        public new Color GetColor(XElement element)
        {
            return base.GetColor(element);
        }

        public new int[,] GetProvincesIdsMatrix(Bitmap map, Dictionary<Color, int> colorIdMappings)
        {
            return base.GetProvincesIdsMatrix(map, colorIdMappings);
        }

        public new Dictionary<int, IList<NeighboorInfo>> GetProvincesInfo(int[,] provincesIdsMatrix, int[,] riversMatrix)
        {
            return base.GetProvincesInfo(provincesIdsMatrix, riversMatrix);
        }

        public new int[,] GetRiversMatrix(Bitmap map)
        {
            return base.GetRiversMatrix(map);
        }

        public new int[,] AddRiversToProvincesIdsMatrix(int[,] provincesIdsMatrix, int[,] riversMatrix)
        {
            return base.AddRiversToProvincesIdsMatrix(provincesIdsMatrix, riversMatrix);
        }

        public new void SaveProvincesIdsMatrix(string path, int[,] provincesIdsMatrix)
        {
            base.SaveProvincesIdsMatrix(path, provincesIdsMatrix);
        }

        public new void SaveProvincesInfo(string path, Dictionary<int, IList<NeighboorInfo>> provincesInfo)
        {
            base.SaveProvincesInfo(path, provincesInfo);
        }

        public new int[,] LoadProvincesIdsMatrix(string path)
        {
            return base.LoadProvincesIdsMatrix(path);
        }

        public new Dictionary<int, IList<NeighboorInfo>> LoadProvincesInfo(string path)
        {
            return base.LoadProvincesInfo(path);
        }
    }
}